package com.kevinkk.tree;

/**
 * 给你一个二叉树的根节点 root ，判断其是否是一个有效的二叉搜索树。
 *
 * 需要用一个 pre 节点来记录前一个节点的情况
 * 在中序遍历的过程中，BST是严格递增的
 */

public class ValidateBinarySearchTree {
    class Solution {
        TreeNode pre = null;

        public boolean isValidBST(TreeNode root) {
            if (root == null) return true;
            boolean left = isValidBST(root.left);
            if (pre != null && pre.val >= root.val)
                return false;
            pre = root;
            boolean right = isValidBST(root.right);
            return left && right;
        }
    }
}
